package com.healthcloud.dao.index;

import com.healthcloud.dto.res.CountInstrumentMonthDto;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author zhangjie
 */
public interface CountDao {

    Integer patientNum(@Param("ids") String ids, @Param("type") String type);

    Integer patientNewNum(@Param("ids") String ids, @Param("type") String type);

    Integer instrumentUseNum(@Param("ids") String ids, @Param("type") String type, @Param("dateType") String dateType);

    List<Map> tenUseMsg(@Param("ids") String ids, @Param("type") String type);

    Integer instrumentActiveNum(@Param("ids") String ids, @Param("type") String type, @Param("dateType") String dateType);

    List<Map> instrumentUseDate(@Param("ids") String ids, @Param("type") String type, @Param("dateType") String dateType);

    List<Map> instrumentActiveDate(@Param("ids") String ids, @Param("type") String type, @Param("dateType") String dateType);

    List<Map> patientMonth(@Param("ids") String ids, @Param("type") String type, @Param("year") String year);

    List<Map> instrumentMonth(@Param("ids") String ids, @Param("type") String type, @Param("year") String year);

    List<Map> accompanyMonth(@Param("ids") String ids, @Param("type") String type, @Param("year") String year);

    /**
     * 统计慢病后台绑定的设备绑定数
     *
     * @param ids
     * @param type
     * @param year
     * @return
     */
    List<CountInstrumentMonthDto> countInstrumentMonthFromMS(@Param("ids") String ids, @Param("type") String type, @Param("year") String year);

    /**
     * 统计积分商城绑定的设备绑定数
     *
     * @param ids
     * @param type
     * @param year
     * @return
     */
    List<CountInstrumentMonthDto> countInstrumentMonthFromIntegral(@Param("ids") String ids, @Param("type") String type, @Param("year") String year);

    /**
     * 按月统计慢病新增人数
     * @param ids
     * @param type
     * @param year
     * @return
     */
    List<Map> newPatientMonth(@Param("ids") String ids, @Param("type") String type, @Param("year") String year);

    /**血压仪器数量*/
    Integer instrumentNumber1(@Param("ids") String ids, @Param("type") String type);

    /**血糖仪器数量*/
    Integer instrumentNumber2(@Param("ids") String ids, @Param("type") String type);

    /**近30天仪器数量*/
    Integer instrumentNewNum(@Param("ids") String ids, @Param("type") String type);


}